from django.core.files.storage import Storage

# 1您的自定义存储系统必须是的子类 django.core.files.storage.Storage：

# 2Django必须能够在没有任何参数的情况下实例化您的存储系统。这意味着任何设置都应来自django.conf.settings：
# 3您的存储类必须实现_open()和_save() 方法，以及适用于您的存储类的任何其他方法。
from meiduo import settings


class FastDFSStorage(Storage):
    """自定义文件存储系统"""

    def __init__(self):
        pass

    def _open(self, name, mode='rb'):
        """
        用于打开文件
        :param name: 要打开的文件的名字
        :param mode: 打开文件方式
        :return: None
        """
        # 打开文件时使用的，此时不需要，而文档告诉说明必须实现，所以pass
        pass

    def _save(self, name, content):
        """
        用于保存文件
        :param name: 要保存的文件名字
        :param content: 要保存的文件的内容
        :return: None
        """
        # 保存文件时使用的，此时不需要，而文档告诉说明必须实现，所以pass
        pass

    def exists(self, name):
        # 判断图片是否存在
        # fdfs自己已经实现了图片的重名 的处理
        #　返回False 说明图片不存在 ,直接传就好
        return False

    def url(self, name):
        """
        返回name所指文件的绝对URL
        :param name: 要读取文件的引用:group1/M00/00/00/wKhnnlxw_gmAcoWmAAEXU5wmjPs35.jpeg
        :return: http://192.168.80.160:8888/group1/M00/00/00/wKhnnlxw_gmAcoWmAAEXU5wmjPs35.jpeg
        """
        # return 'http://192.168.103.158:8888/' + name
        # return 'http://image.meiduo.site:8888/' + name
        return settings.FDFS_BASE_URL + name
